package com.fancy.gateway.controller;

import com.fancy.common.dto.response.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 降级处理控制器
 *
 * @author fancy
 */
@Slf4j
@RestController
@RequestMapping("/fallback")
public class FallbackController {

    /**
     * 用户服务降级
     */
    @GetMapping("/user")
    public Result<Object> userFallback() {
        log.warn("用户服务降级处理");
        return Result.fail(50003, "用户服务暂时不可用，请稍后重试");
    }

    /**
     * 音乐服务降级
     */
    @GetMapping("/music")
    public Result<Object> musicFallback() {
        log.warn("音乐服务降级处理");
        return Result.fail(50003, "音乐服务暂时不可用，请稍后重试");
    }

    /**
     * 播放列表服务降级
     */
    @GetMapping("/playlist")
    public Result<Object> playlistFallback() {
        log.warn("播放列表服务降级处理");
        return Result.fail(50003, "播放列表服务暂时不可用，请稍后重试");
    }

    /**
     * 推荐服务降级
     */
    @GetMapping("/recommendation")
    public Result<Object> recommendationFallback() {
        log.warn("推荐服务降级处理");
        return Result.fail(50003, "推荐服务暂时不可用，请稍后重试");
    }

    /**
     * 社交服务降级
     */
    @GetMapping("/social")
    public Result<Object> socialFallback() {
        log.warn("社交服务降级处理");
        return Result.fail(50003, "社交服务暂时不可用，请稍后重试");
    }

    /**
     * 通用服务降级
     */
    @GetMapping("/default")
    public Result<Object> defaultFallback() {
        log.warn("通用服务降级处理");
        return Result.fail(50003, "服务暂时不可用，请稍后重试");
    }
}
